package pvn.com.controls;

import net.rim.device.api.ui.Graphics;
import net.rim.device.api.ui.component.LabelField;

public class ColorLabel extends LabelField {
    /** vị trí x*/
    int mx = 0;
    /** vị trí y*/
    int my = 0;
    /** độ rộng*/
    public int width = 0;

    /** màu chữ*/
    private int mFontColor = -1;
    /** màu bóng chữ*/
    private int mShadowColor2 = -1;

    /**
     * khởi tạo ColorLabel 
     * @param text - nội dung nhãn
     * @param style - kiểu nhãn
     */
    public ColorLabel(Object text, long style) {
        super(text, style);
    }

    /**
     * Thiết lập màu chữ và màu bóng
     * @param fontColor - màu chữ 
     * @param fontShadow - màu bóng
     */
    public void setFontColor(int fontColor, int fontShadow) {
        this.mFontColor = fontColor;
        this.mShadowColor2 = fontShadow;
    }

    /** thiết lập vị trí Translate
     * @param _mx
     * @param _my
     */
    public void setTranslate(int _mx, int _my) {
        this.mx = _mx;
        this.my = _my;
    }

    /**
     * Lấy chiều cao label
     * @return - chiêu cao Preferred
     */
    public int getRealHeight() {
        return getPreferredHeight();
    }

    /**
     * Thiết lập kích thước
     * @param maxW
     * @param maxH
     */
    public void slayout(int maxW, int maxH) {
        super.layout(this.width, maxH);
        setExtent(this.width, maxH);
    }

    /* (non-Javadoc)
     * Lấy độ rộng
     * @see net.rim.device.api.ui.component.LabelField#getPreferredWidth()
     */
    public int getPreferredWidth() {
        if (this.width > 0) {
            return this.width;
        }
        return super.getPreferredWidth();
    }

    /* (non-Javadoc)
     * Vẽ ra màn hình
     * @see net.rim.device.api.ui.component.LabelField#paint(net.rim.device.api.ui.Graphics)
     */
    protected void paint(Graphics graphics) {
        //Thiết lập Alpha
    	graphics.setGlobalAlpha(255);
    	//thiết lập bóng chữ nếu có yêu cầu
        if (-1 != this.mShadowColor2)
            graphics.setColor(this.mShadowColor2);
        // tịnh tiến theo tọa độ ngược mx, my
        graphics.translate(-this.mx, -this.my);
        //vẽ ra
        super.paint(graphics);
        //neu mx, my có giá trị khác 0
        if ((this.mx != 0) || (this.my != 0)) {
        	//nếu thiết lập màu chữ
            if (-1 != this.mFontColor)
            	//đặt màu
                graphics.setColor(this.mFontColor);
            graphics.setColor(this.mFontColor);
            // tịnh tiến theo tọa độ mx, my
            graphics.translate(this.mx, this.my);
            //vẽ ra
            super.paint(graphics);
        }
    }
}